package com.itfenghuang.day02;

public class A05_innerClass {
    public static void main(String[] args) {
        /**
         * 内部类
         *
         * 1.概念
         *      一个类写在另外一个类中
         *2.内部类成员访问特点
         *      内部类中可以访问外部类的成员包括私有
         *      外部类中,想要访问内部类中成员,必须创建对象
         * 3.练习
         * 创建一个外部类Person  属性  name age 行为eat
         *  在Person 中创建Student 类    number class  行为 goodgoodstudy,daydayup
         *   要求:  在外部类中访问内部类中学号 班级
         *   张三的学号是  班级是  年龄是
         *
         */
        Inner inner = new Inner();
        inner.yue();

        Person person = new Person();
        person.eat();


        //访问内部类的成员
        //1.创建外部类的对象
        Outer outer = new Outer();
        //2.调用方法
        outer.show();



    }
    //静态内部类
    static class Inner{
        public String  name;
        public int  age;

        public static void yue(){
            System.out.println("起飞咯");
        }
    }
}
class Outer {
    private int num=10;
    //如果想要访问内部类的成员,我们可以在外部类中提供一个方法,
    //然后,方法内创建一个内部类的对象
    public void show(){
//        System.out.println(flag);
        Inner inner = new Inner();
        System.out.println(inner.flag);
        inner.print();

    }
    class Inner{
        public int flag=20;

        public void print(){
            System.out.println(num);
        }
    }
}
class  Person {
    private String name;
    private int age;

    public void eat(){
        Student student = new Student();
        student.grade = "三年级2班";
        student.number=110;
        student.study();
        System.out.println("学号:"+student.number+  "班级:"+student.grade);
    }
    class Student{
        private String grade;
        private int number;

        public void study(){
            name="爆爆";
            age=16;
            System.out.println("我叫"+name+"今年"+age+"岁");
            System.out.println("goodgoodstudy,daydayup");
        }
    }
}